功耗调整指引
1. 打开/关闭 组件¶
1.1. 可选的组件¶
在Infinity-2m上可选使能的组件有 : Analog Power
、ETH
和 USB
1.2. Analog Power¶
可以依据不同应用场景将没用到的仿真电路电源关闭达到节能目标
-
可开关的项目
可调整项目有:
Audio/EMAC/HDMI ATOP/IDAC ATOP/IDAC LPLL/DISP LPLL/MIPI DPHY TX TOP/SATA ATOP/UPLL 0,1/USB20 P1,P2,P3
对应kernel的config如下,需要关闭置为y即可
# CONFIG_ANALOG_PD_AUDIO is not set # CONFIG_ANALOG_PD_EMAC is not set CONFIG_ANALOG_PD_HDMI_ATOP=y CONFIG_ANALOG_PD_IDAC_ATOP=y CONFIG_ANALOG_PD_IDAC_LPLL=y # CONFIG_ANALOG_PD_DISP_LPLL is not set # CONFIG_ANALOG_PD_MIPI_DPHY_TX_TOP is not set CONFIG_ANALOG_PD_SATA_ATOP=y # CONFIG_ANALOG_PD_UPLL_0 is not set # CONFIG_ANALOG_PD_UPLL_1 is not set # CONFIG_ANALOG_PD_USB20_P1 is not set # CONFIG_ANALOG_PD_USB20_P2 is not set # CONFIG_ANALOG_PD_USB20_P3 is not set
注:如果是MIPI panel则不能选上MIPI_DPHY
1.3. ETH¶
需要在U-Boot及Linux Kernel进行调整才能完全关闭该组件
1.3.1. 调整U-Boot¶
-
取消MSTAR EMAC的选项
1.3.2. 调整Linux Kernel¶
-
Step1.取消EMAC的选项
-
Step2. 取消Networking support的选项
1.4. USB¶
需要在U-Boot及Linux Kernel进行调整才能完全关闭该组件
1.4.1. 调整U-Boot¶
-
取消MSTAR USB的选项
1.4.2. 调整Linux Kernel¶
-
修改文件linux-4.9/arch/arm/boot/dts/infinity2m.dtsi (调整status = “disable”来关闭USB)
2. 组件时钟频率配置¶
2.1. CPU 时钟频率配置¶
2.1.1. Voltage scaling 配置¶
-
提供voltage scaling的切换,预设是关闭。可通过如下命令设置开启该配置。
echo 1 > /sys/devices/system/cpu/cpufreq/scaling_voltage
-
该配置开启后,系统会自动针对目前的温度(T)来进行voltage的切换。切换策略如下:
T > 60C : VDD= 0.9V T < 40C : VDD = 1.0V
2.1.2. Clock scaling 配置¶
-
提供clock scaling范围的设置,可通过入下命令设置clock scaling的范围。
echo s_min > /sys/devices/system/cpu/cpufreq/policy0/scaling_min_freq (default 1GHz) echo s_max > /sys/devices/system/cpu/cpufreq/policy0/scaling_max_freq (default 1GHz)
(note: s_min, s_max 单位是 khz)
-
设置约束:
-
s_min必须小于等于s_max
-
s_min必须大于等于/sys/devices/system/cpu/cpufreq/policy0/cpuinfo_min_freq
-
s_max必须小于等于/sys/devices/system/cpu/cpufreq/policy0/cpuinfo_max_freq
-
2.2. 编码时钟频率配置¶
2.2.1. 编码器配置示例¶
在mhal.ko加载之后,开启视频处理任务之前,即可通过如下命令设置相关频率:
-
读取目前的isp clock rate,可通过以下命令取得
cat /sys/venc/ven_clock
-
设置venc clock rate,可通过以下命令设置
echo 384000000 > /sys/venc/ven_clock
2.2.2. 编码器时钟频率档位¶
JPE 的clock default:320M
-
216000000
-
288000000
-
320000000
2.2.3. 约束¶
以上的设置应该在模块加载时设置,才能正确的生效。
2.3. 观察cpu的温度¶
cat /sys/devices/virtual/mstar/msys/TEMP_R
结果仅供参考,因为误差可以达到5摄氏度。